
03.12.2014, 18:41
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
json сортировка
Здравствуйте! Нужна помощь!
Ситуация следующая:
Есть обработчик json:
function sql()
{
$.ajax({
type: "POST",
url: "sql.php",
dataType:"json",
data: data,
success: function(data){
for(var i=0;i<data.length;i++)
{
$("#sql").append("<div onclick = 'myfunction()'><input name='pole1' id='pole1' value = 'data[i].id'><input name='pole2' id='pole2' value = 'data[i].Name'></div)");
}}
});
}
Функция myfunction() присваивает значения value другим input
function myfunction() {
document.getElementById('N1').value = $('#pole1').val();; document.getElementById('N2').value = $('#pole2').val();;
}
Данные приходят так (объектов может быть неограниченно):
[{"id":"1","Name":"Mike",},{"id":"2","Name":"Jon h"}]
Проблема вот в чем.
Если объект json один, то все работает, но если их больше, то в document.getElementById('N1').value и document.getElementById('N1').value попадает только значения последнего объекта.
Подскажите, пожалуйста, как можно решить проблему!
Несколько дней голову ломаю!
Заранее огромное спасибо!
|
|

03.12.2014, 20:13
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
Другими словами, есть input которому нужно присвоить value из данных json. Но когда объектов несколько, то присваиватся только значения последнего объекта
|
|

03.12.2014, 20:15
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Не по теме:зачем онклик повесил на родителя инпутов? Как теперь сфокусироваться на инпуте мышкой, не делая клика?
__________________
В личку только с интересными предложениями
|
|

03.12.2014, 20:17
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
У тебя в цикле не используется data вообще.
__________________
В личку только с интересными предложениями
|
|

03.12.2014, 20:24
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,149
|
|
Tord002,
id должно быть одно для одного элемента а не одно для всех -- иначе нужен class
|
|

03.12.2014, 20:32
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
инпуты с type="hidden". Планировал использовать их для присвоения и передачи значений. Тут не стал лишним кодом захломлять.
Про data в цикле не понял.
С одним объектом работает! В итоге в document.getElementById('N1').value и document.getElementById('N1').value попадают значения.
хз как более понятнее объяснить(((
Когда объектов несколько, выводится несколько div с разными значениями. Т.е. все как нужно.
Но по onclick на этих div отсылает одно и тоже значение в document.getElementById('N1').value и document.getElementById('N1').value (значения последнего объекта).
Извините, если, что-то криво описал
|
|

03.12.2014, 20:34
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
Сообщение от рони
|
Tord002,
id должно быть одно для одного элемента а не одно для всех -- иначе нужен class
|
Спасибо, а можно немного подробнее с class!!!!
|
|

03.12.2014, 20:42
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
Я понимаю, что id должно быть одно для одного элемента и, что цикл сначало присваивает ему значение первого, потом второго и в итоге последнего. Но как сделать правильно не догоняю
|
|

03.12.2014, 21:08
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,149
|
|
Сообщение от Tord002
|
инпуты с type="hidden
|
зачем тогда они нужны
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
var data = [{
"id": "1",
"Name": "Mike"
}, {
"id": "2",
"Name": "Jonh"
}];
function success(data) {
$.each(data, function(indx, element) {
$("<div>", {
text: "click test " + indx,
click: function() {
$("#N1").val(element.id);
$("#N2").val(element.Name)
}
}).appendTo("#sql")
})
}
success(data)
});
</script>
</head>
<body>
<div id="sql"></div>
<input id="N1" name="">
<input id="N2" name="">
</body>
</html>
|
|

03.12.2014, 22:27
|
Аспирант
|
|
Регистрация: 03.12.2014
Сообщений: 58
|
|
Работает!
Даже не верил!
Дай Бог Вам всего самого хорошего!
Огромное спасибо!
|
|
|
|